package com.atguigu.spzx.cart.service;

import com.atguigu.spzx.model.entity.h5.CartInfo;

import java.util.List;

/**
 * ClassName: CartService
 * Package: com.atguigu.spzx.cart.service
 * Description:
 *
 * @Author 刘强
 * @Create 2024/7/17 9:58
 * @Version 1.0
 */
public interface CartService {
    /**
     * 添加到购物车
     * @param skuId
     * @param count
     */
    void addToCart(Long skuId, Integer count);

    /**
     * 查询购物车列表
     * @return
     */
    List<CartInfo> cartList();

    /**
     * 删除购物车项
     * @param skuId
     */
    void deleteCart(Long skuId);

    /**
     * 跟新购物车项的选中状态
     * @param skuId
     * @param isChecked
     */
    void checkCart(Long skuId, Integer isChecked);

    /**
     * 全选状态的修改
     * @param isChecked
     */
    void allCheckCart(Integer isChecked);

    /**
     * 清空购物车
     */
    void clearCart();

    /**
     * 根据token获取所有选中的购物车项
     * @return
     */
    List<CartInfo> getAllCkecked();

    /**
     * 清空选中的购物车项
     */
    void clearChecked();
}
